package com.alander.nexusgo.post.service;

import com.alander.nexusgo.common.model.dto.PostsListDTO;
import com.alander.nexusgo.common.model.vo.PostsVO;
import com.alander.nexusgo.post.model.entity.Posts;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author alander
*/
public interface PostsService extends IService<Posts> {
    /**
     * 创建帖子
     * @param posts 帖子信息
     * @param userId 用户ID
     * @return 创建的帖子VO
     */
    PostsVO createPost(Posts posts, Long userId);

    /**
     * 更新帖子
     * @param id 帖子ID
     * @param posts 更新的帖子信息
     * @param userId 用户ID
     * @return 更新后的帖子VO
     */
    PostsVO updatePost(Long id, Posts posts, Long userId);

    /**
     * 删除帖子
     * @param id 帖子ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deletePost(Long id, Long userId);

    /**
     * 获取帖子详情
     * @param id 帖子ID
     * @return 帖子VO
     */
    PostsVO getPostById(Long id);

    /**
     * 查询帖子列表
     * @param postsListDTO 查询条件
     * @return 帖子VO列表
     */
    List<PostsVO> listPosts(PostsListDTO postsListDTO);
}